var http = require('http');
var querystring = require('querystring');
var contents = querystring.stringify({
    name: 'byvoid',
    email: 'byvoid@byvoid.com',
    address: 'Zijing 2#, Tsinghua University',
});
var options = {
    host: 'www.byvoid.com',
    path: '/application/node/post.php',
    method: 'POST',
    headers: {
        'Content-Type': 'application/x-www-form-urlencoded',
        'Content-Length': contents.length
    }
};
var clientRequest = http.request(options, function (res) {
    res.setEncoding('utf8');
    res.on('data', function (data) {
        console.log(data);
    });
});

//用于向服务器发送请求体，通常用于 POST、 PUT 等操作
clientRequest.write(contents);
clientRequest.end();

/**
 * http.ClientRequest----------------
 * http.Client 的request()方法建立并返回http.ClientRequest 对象。
 该对象代表一个进行中的请求（request），
 该请求的消息头已经发送出去。

 要获得回应，
 可以为request 对象增加一个'response'事件的监听器。
 response事件将在request 对象接收到响应头的时候被触发，
 response事件的处理函数接收一个参数，
 该参数是http.ClientResponse 的实例。

 在response事件中，
 可以为response 对象增加监听器，
 监听data事件尤为有用。
 要记住，response事件是在接收到回应信息体之前被触发，
 所以这里不需要担心信息体的第一部分不能被捕获。
 只要在处理response事件过 程中增加data事件监听器，
 信息体是肯定可以被捕获的。
 ------------------------------------
 *http.ClientResponse
 这个对象在使用http.Client 发起请求时被创建，
 它会以参数的形式传递给request 对象'response'事件的响应函数。 'response'实现了可读流的接口。
 */
